/**
 *
 */
package com.dhcc.frame.guava.Optional;

import com.google.common.base.Optional;

/**
 * @author 谢进军
 * Optional可选的
 */
public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Integer value1 =  null;
	    Integer value2 =  new Integer(10);
	    //如果nullableReference非空返回一个包含该引用的Optional实例;否则返回缺席Absent实例
		Optional<Integer> a = Optional.<Integer>fromNullable( value2 );
		//abstract boolean isPresent()：是否是出席元素
		System.out.println(a.isPresent());
		//abstract T or(T defaultValue):返回所包含的实例(如果存在);否则为默认值。
		System.out.println( a.or( 1 ) );
		System.out.println( a.get() );
		//返回包含给定的非空引用Optional实例,如果为null包NullPointerException
		Optional<Integer> b = Optional.<Integer>of(value2);
		//abstract T get():返回所包含的实例，它必须存在,否则报IllegalStateException
		System.out.println( b.get() );

//		Optional<Integer> b = Optional.of(value2);
	}

}
